import defaultSettings from '@/settings'
const { projectTitle, logoImgSrc, showSettings, fixedHeader, sidebarLogo } = defaultSettings
// 定义路由数据 用于动态加载
const settings = {
  // state vuex的基本数据，用来存储变量
  state: {
    projectTitle: projectTitle,
    logoImgSrc: logoImgSrc,
    showSettings: showSettings,
    fixedHeader: fixedHeader,
    sidebarLogo: sidebarLogo
  },
  // mutations 提交更新数据的方法，必须是同步的(如果需要异步使用action)。每个 mutation 都有一个字符串的 事件类型 (type) 和 一个 回调函数 (handler)。
  mutations: {
    CHANGE_SETTING: (state, { key, value }) => {
      if (state.hasOwnProperty(key)) {
        state[key] = value
      }
    }
  },
  // actions 和mutation的功能大致相同，不同之处在于 ==》1. Action 提交的是 mutation，而不是直接变更状态。 2. Action 可以包含任意异步操作。
  actions: {
    changeSetting ({ commit }, data) {
      commit('CHANGE_SETTING', data)
    }
  }
}

export default settings
